var skipArray = [];
var pxStyle = ['font-size', 'width', 'height'];
var _renderToHtml = function (root) {
  var str = '';
  if (BI.isNull(root.originalHtml)) {
    if (root.tag !== 'body') {
      str += `<${root.tag}`;
      if (root.classList.length > 0) {
        str += ' class="';
        BI.each(root.classList, (i, cls) => {
          str += ` ${cls}`;
        });
        str += '"';
      }
      str += ' style="';
      BI.each(root.originalStyles, (key, stl) => {
        if (
          skipArray.contains(key) ||
          (key == 'height' && root.classList.contains('bi-design-components-data-data-table-cell'))
        ) {
          return;
        }
        key = BI.hyphenate(key);
        if (key === 'font-family') {
          stl = stl.replace(/\"/g, '');
        }
        if (pxStyle.contains(key) && BI.isNumeric(stl)) {
          stl += 'px';
        }
        if (BI.isKey(stl)) {
          str += ` ${key}:${stl};`;
        }
      });
      str += '"';
      BI.each(root.attribs, (key, attr) => {
        if (BI.isKey(attr)) {
          str += ` ${key}=${attr}`;
        }
      });
      if (root.textContent) {
        str += ` title=${root.textContent}`;
      }
      str += '>';
    }
    // 特殊处理，spread_table的行列元素是不取配置里的高度的，使用stretch拉伸的（leaves取了高度），但是功能代码里给单元格默认高度了，导致拉伸不了
    //  而spread_grid_table的行列元素是取配置里的高度的，拉不拉伸都一样
    BI.each(root.children, (i, child) => {
      str += _renderToHtml(child);
    });
  } else {
    str += root.originalHtml;
  }
  if (root.tag !== 'body') {
    if (root.textContent) {
      str += root.textContent;
    }
    str += `</${root.tag}>`;
  }
  return str;
};
export const registRenderToHtmlFun = (Element) => {
  Element.registerFunction('renderToHtml', function () {
    return _renderToHtml(this);
  });
};
